1. Field of the Invention
This invention relates generally to the field of computing technology and more particularly concerns optimization of RAID applications.
2. Description of the Related Art
Since the inception of computers, data protection has been one of the main concerns in designing data storage systems. Valuable data stored in hard drives can be lost due to abnormal occurrences such as human errors, equipment failures, and adverse environmental conditions. With the advent of on-line, interactive computing, the protection of data against loss has become an even more important consideration in designing data storage systems. For example, modern e-commerce enables companies to conduct all or sizable portion of their business over the Internet using computers. In such a scenario, if hard drives on a company's server computer fail, the company's business may come to a standstill. This may lead to a substantial loss in business and goodwill from its customers.
To guard against such disastrous events and enhance I/O performance, many computer systems implement a Redundant Array of Independent Disk (RAID) system, which is a disk system that includes a collection of multiple disk drives and an array controller. The disk drives are organized into a disk array and managed by the common array controller. The array controller presents the array to the user as one or more virtual disks. Disk arrays are the framework to which RAID functionality is added in functional levels to produce cost-effective, highly available, high-performance disk systems.
In RAID systems, data is distributed over multiple disk drives to allow parallel operation, thereby enhancing disk access performance and providing fault tolerance against drive failures. Currently, a variety of RAID levels (e.g., RAID level 0 through level 6) has been specified in the industry. For example, RAID level 5 architecture provides enhanced performance by striping data blocks among N disks and provides fault-tolerance by using 1/N of its storage for parity blocks, which are typically calculated by taking the exclusive-or (XOR) results of all data blocks in the parity disks row. The I/O bottleneck is thus reduced because read and write operations are distributed across multiple disks. RAID systems are well known in the art and are amply described, for example, in The RAID Book, A storage System Technology Handbook, by Paul Massiglia, 6th Ed. (1997), which is incorporated herein by reference.
It is becoming very clear that serial advanced technology attachment (serial ATA or SATA) drives will soon replace ATA drives as the mass market storage solution for storage systems such as RAID systems. As such, they will enjoy significant cost advantages over other disk drives. Using these devices with a RAID controller can protect the data from loss through drive failure, but may render it temporarily inaccessible due to controller failure. For those systems where continuous data access is required, the standard solution is to use two controller cards, and allow them both to access all drives by connecting them to each SCSI cable (dual initiator) or using dual port Fibre Channel drives. However, the highly economical SATA drives are only single ported, rendering that type of solution impossible.
FIG. 1 illustrates a conventional external storage architecture 10. The storage architecture includes hosts 12 and 16 connected to an InfiniBand-PCI (IB-PCI) target channel adapter (TCA) 18 through an InfiniBand fabric 14. The InfiniBand-PCI TCA 18 is connected to a bridge 22 which is in turn connected to a RAID processor 20, memory 24 and SATA host adapters (HA) 30 and 32 which in turn are connected to storage devices 42 and 44. From an InfiniBand perspective, it requires one queue pair (QP) per host process, with the RAID processor 20 sending and receiving all SCSI RDMA Protocol (SRP) or (direct access file system) DAFS messages and generating remote direct memory access protocol (RDMA) operations to transfer data to and from the hosts. A queue pair is an endpoint of a link between communicating entities where communication is achieved through direct memory-to-memory transfers between applications and devices. Within the external RAID box all data is transferred by PCI DMA operations and control information by PCI DMA and PCI PIO.
There are numerous disadvantages to this approach, which will become more significant over time. The approach requires that all data pass through the memory block, which doubles memory bandwidth requirements and increases latency. At present, the memory pass through approach is the only option and as data throughput in other parts of the system increase, memory pass through blockage will probably become an increased bottleneck. An additional problem is the bandwidth limitations of parallel, shared busses, such as PCI which can be overloaded with data and therefore decrease data transmission throughput and efficiency. Therefore, as time progresses and data throughput needs becomes greater, the prior art data transmission architecture will generally not have enough capabilities to enable optimal data transmission. In addition, if the RAID processor 20 fails, the whole system would become inoperable. Therefore, there is a single point of failure in the system 10. Consequently, failure in just one location of the entire system can prevent data storage or retrieval from the storage devices 42 and 44.
Therefore, there is a need for a RAID system with no single point of failure that is capable of utilizing advanced routing methods thereby enhancing data transmission efficiency.